package Controller;

public class Cpf
{
    public boolean validarCPF(String cpf)
    {
      cpf = retiraCaracter(cpf);
       int     dig1 = 0, dig2 = 0;
       int     digito1 = 0, digito2 = 0, resto = 0;
       int     digitoCPF = 0;

       for (int i = 1; i < cpf.length() -1; i++)
       {
          digitoCPF = Integer.valueOf (cpf.substring(i -1, i)).intValue();

          dig1 = dig1 + ( 11 - i ) * digitoCPF;

          dig2 = dig2 + ( 12 - i ) * digitoCPF;
       }

       resto = (dig1 % 11);

       if (resto < 2)
       {
           digito1 = 0;
       }
       else
       {
           digito1 = 11 - resto;
       }

       dig2 += 2 * digito1;

       resto = (dig2 % 11);

       if (resto < 2)
       {
           digito2 = 0;
       }
       else
       {   digito2 = 11 - resto;
       }

       String verifica = "";
       verifica = cpf.substring (cpf.length()-2, cpf.length());

       String resulta = "";
       resulta = String.valueOf(digito1) + String.valueOf(digito2);

       if(todosIguais(cpf)){
           return false;
       }
       return verifica.equals(resulta);

    }
    public String retiraCaracter(String frase){
       String resposta ="";

       for(int i=0; i<frase.length(); i++){
          if((frase.charAt(i) != '.')&&(frase.charAt(i) != '-')){
             resposta += frase.charAt(i);
          }
       }
       return resposta;
    }
    public boolean todosIguais(String cpf){
        int cont=0;
        for(int i=0;i<cpf.length()-1;i++){
            if(cpf.charAt(i)==cpf.charAt(i+1)){
                cont++;
            }
        }
        cont++;
        if(cont==cpf.length()){
            return true;
        }else return false;
    }
}
